import Serializer=require('./../../../base/Serializer');
import FColorBase=require('./../../../color/FColorBase');
import FColor=require('./../../../color/FColor');
import Parser=require('./../../../base/Parser');

export = LineStyle;

/**
 * 线的属性，例如：样式、粗细、颜色 
 * @author 
 *
 */
class LineStyle extends Serializer {
    //    线的样式， 0无、1直线、2虚线、3点线
    public static LINE_TYPE_0: number=0;
    public static LINE_TYPE_1: number=1;
    public static LINE_TYPE_2: number=2;
    public static LINE_TYPE_3: number=3;
    
    /**
     * visible, 是否显示,0不显示，1显示
     */
    public v: number=1;
    /**
     * type,  线的样式，见 LINE_TYPE_*
     */
    public t: number=LineStyle.LINE_TYPE_1;
    /**
     * width,  线的粗细，
     */
    public w: number=2;
    
    public al: number=1;// 线透明度
    public color: FColorBase=new FColor();// 线颜色
    
    

    public constructor(g?) {
        super(g);
    }
    // 从json对象(注意不是json字符串)中解析
    // 参数：self,true表示只拷贝自身数据，而不拷贝子的数据
    public fromJson(jsonObj,versionId,self?) {
        super.fromJson(jsonObj,versionId,self);

        this.v=jsonObj.v;
        this.t=jsonObj.t;
        this.w=jsonObj.w;
        this.al=jsonObj.al;
        if(jsonObj.color!=null) {
            this.color=Parser.fromUnknownJson(jsonObj.color,versionId);
        }
    }
    // 转成json字符串
    public toJson(): string {
        // 去掉父json字符串的头尾
        var superJson=super.toJson();
        superJson=superJson.substr(1,superJson.length-2);

        var ret='{';
        ret+=superJson;
        
        // v
        ret+=',';
        ret+='"v":';
        ret+=this.v;
        
        // t
        ret+=',';
        ret+='"t":';
        ret+=this.t;
        
        // w
        ret+=',';
        ret+='"w":';
        ret+=this.w;
                    
        // al
        ret+=',';
        ret+='"al":';
        ret+=this.al;
        
        // color
        if(this.color!=null) {
            ret+=',';
            ret+='"color":';
            ret+=this.color.toJson();
        }

        ret+='}';
        return ret;
    }
//SJG_MARK_APPEND--------------------
}//SJG_MARK_END-------------------------